KeepassXC – matoken's blog https://matoken.org/blog Is there no plan B? Tue, 19 Mar 2024 21:49:48 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg KeepassXC – matoken's blog https://matoken.org/blog 32 32 KeePassXC が PassKey に対応 https://matoken.org/blog/2024/03/20/keepassxc-supports-passkey/ https://matoken.org/blog/2024/03/20/keepassxc-supports-passkey/#respond Tue, 19 Mar 2024 22:00:00 +0000 https://matoken.org/blog/?p=3989

KeepassXC 2.7.7 about

パスワードマネージャのKeepassXC が 2.2.7 で PassKey に対応したとのことで試してみました.

例によって Debian sid amd64 環境で,Brave を利用しました.

KeepassXC のパッケージを確認すると Debian sid でも1つ前の 2.7.6 です.

$ rmadison keepassxc
keepassxc  | 2.3.4+dfsg.1-1         | oldoldstable           | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
keepassxc  | 2.6.2+dfsg.1-1~bpo10+1 | buster-backports       | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
keepassxc  | 2.6.2+dfsg.1-1~bpo10+1 | buster-backports-debug | source
keepassxc  | 2.6.2+dfsg.1-1         | oldstable              | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
keepassxc  | 2.7.4+dfsg.1-2         | stable                 | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
keepassxc  | 2.7.6+dfsg.1-1         | testing                | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, s390x
keepassxc  | 2.7.6+dfsg.1-1         | unstable               | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, riscv64, s390x
keepassxc  | 2.7.6+dfsg.1-1         | unstable-debug         | source
$ rmadison -u ubuntu keepassxc
 keepassxc | 2.3.1+dfsg.1-1       | bionic/universe | source, amd64, arm64, armhf, i386, ppc64el, s390x
 keepassxc | 2.4.3+dfsg.1-1build1 | focal/universe  | source, amd64, arm64, armhf, ppc64el, s390x
 keepassxc | 2.6.6+dfsg.1-1       | jammy/universe  | source, amd64, arm64, armhf, ppc64el, riscv64, s390x
 keepassxc | 2.7.4+dfsg.1-2       | mantic/universe | source, amd64, arm64, armhf, ppc64el, riscv64, s390x
 keepassxc | 2.7.6+dfsg.1-1       | noble/universe  | source, amd64, arm64, armhf, ppc64el, riscv64, s390x

とりあえず AppImage版を使うことにします.

$ wget -c https://github.com/keepassxreboot/keepassxc/releases/download/2.7.7/KeePassXC-2.7.7-x86_64.AppImage (1)
$ gpg --verify ./KeePassXC-2.7.7-x86_64.AppImage.sig (2)
gpg: assuming signed data in './KeePassXC-2.7.7-x86_64.AppImage'
gpg: Signature made Sun Mar 10 23:04:33 2024 JST
gpg:                using RSA key C1E4CBA3AD78D3AFD894F9E0B7A66F03B59076A8
gpg: Good signature from "KeePassXC Release <release@keepassxc.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: BF5A 669F 2272 CF43 24C1  FDA8 CFB4 C216 6397 D0D2
     Subkey fingerprint: C1E4 CBA3 AD78 D3AF D894  F9E0 B7A6 6F03 B590 76A8
$ chmod u+x ./KeePassXC-2.7.7-x86_64.AppImage (3)
$ ./KeePassXC-2.7.7-x86_64.AppImage --help
Usage: keepassxc [options] [filename(s)]
KeePassXC - cross-platform password manager

Options:
  -h, --help                   Displays help on commandline options.
  --help-all                   Displays help including Qt specific options.
  -v, --version                Displays version information.
  --config <config>            path to a custom config file
  --localconfig <localconfig>  path to a custom local config file
  --lock                       lock all open databases
  --keyfile <keyfile>          key file of the database
  --pw-stdin                   read password of the database from stdin
  --debug-info                 Displays debugging information.
  --allow-screencapture        allow screenshots and app recording
                               (Windows/macOS)

Arguments:
  filename(s)                  filenames of the password databases to open
                               (*.kdbx)
  1. Linux amd64用の AppImage をダウンロード
  2. ベリファイ,鍵についてはこちらを → Verifying Signatures – KeePassXC
  3. 実行権を付与

念の為実行前にバックアップを取得しておきます.
~/.config/keepassxc/ やデータベース,キーファイルなど.

ウェブブラウザの KeepassXC 拡張機能設定で PassKey の設定が有効になっているのを確認します.

KeepassXC extention setting

PassKey 対応サイトで自分のあまり利用していないsite を探します.

今回はアカウントは作ったけど買い物をしたことのないフリマサイトのメルカリで試します.

ログインした状態で「生体認証」https://jp.mercari.com/mypage/personal_info/passkeys のページに移動,「生体認証を追加する」から登録します.

KeepassXC が反応してパスキーの登録画面が表示されるので「登録」ボタンで登録します.

KeepassXC passkey registration

一旦logout してlogin を試みます.「パスキーでログイン」から入ります.

mercari login

KeePassXC で認証してID/Password を入力しないでログインできました.

KeepassXC passkey login

必要はないと思いますが,秘密鍵の内容などもKeepassXC で確認できます.

KeepassXC privkey

割とあっさりと動きました.
他の PassKey 対応site も順次移行していこうと思います.

ちなみに自分は格安スマホしか持っていなくて,こまめなセキュリティアップデートなどがないのでスマートフォンでのPassKey は使っていません.Google Pixel や iPhone などを入手できたら試してみたいです.

後はハードウェア鍵も欲しいですね.予備キーも欲しいとなると2つ分…….

環境

KeePassXC-Browser 1.9.0.1

$ ls -t ~/.config/BraveSoftware/Brave-Browser/Default/Extensions/oboonakemofpalcgghocfoadofidjkkk/ | tail -1
1.9.0.1_6
$ dpkg-query -W brave-browser
brave-browser   1.63.174
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
Codename:       trixie
$ arch
x86_64




]]>
https://matoken.org/blog/2024/03/20/keepassxc-supports-passkey/feed/ 0
KeePassXC の Steam TOTP を試す https://matoken.org/blog/2018/09/09/try-keepassxc-steam-totp/ https://matoken.org/blog/2018/09/09/try-keepassxc-steam-totp/#comments Sat, 08 Sep 2018 21:01:52 +0000 http://matoken.org/blog/?p=2096

Steam ガードというスマートフォンアプリを使ったValve独自TOTPな多要素認証があります.これは通常のTOTP(rfc6238)と違い独自実装で数字だけではなくアルファベットも利用しているのでOATH ToolkitやGoogle Authenticatorでは認証できません.

Steam ガードのTOTPはValve独自ですが一応いくつかの実装はあります.(未検証)

KeepassXC にも TOTP(KeePassXC 2.2.0以降)と Steam ガードの TOTP(KeePassXC 2.3.0以降)がサポートされています.今回これを試してみました.

a generator for time-based one-time passwords (TOTP)
Add support for Steam one-time passwords [#1206]

しかし,これらを試すにはSteam Guard Mobile Authenticatorを設定したスマートフォンの中からTOTPの秘密鍵を入手する必要があります.以前のAndroidではadb backup するだけで鍵の書かれたファイルが入手できていたらしいのですが現在は暗号化されていてこの手順では入手できないようです.
GitHubにAPKにpatchするscriptが公開されていたのでまずはこれを試してみました.

これがうまく行けば以前のようにadb backupが出来るようになるはずです.しかし,バージョンの問題か失敗しました.

別の方法としてAndroidのroot取得済み端末にSteam Guard Mobile Authenticatorを導入してこちらの端末を有効にして秘密鍵を取得しました.

rooted端末から設定ファイルを抜き出してトークン取得
$ adb shell #Android shellを起動してファイル名を確認
1|shell@MK16i:/ $ su
root@MK16i:/ # ls -l /data/data/com.valvesoftware.android.steam.community/files/
-rw-rw---- u0_a59   u0_a59        448 2018-08-31 22:25 Steamguard-76561198085918260
root@MK16i:/ # exit
root@MK16i:/ $ exit #AndroidからexitしてPCに戻る
$ adb root  #rootになる
$ adb pull /data/data/com.valvesoftware.android.steam.community/files/Steamguard-76561198085918260  #ファイル取得
$ adb kill-server  #adb server終了
$ file Steamguard-76561198085918260
Steamguard-76561198085918260: ASCII text, with very long lines, with no line terminators
$ lv Steamguard-76561198085918260
$ jq .uri Steamguard-76561198085918260 | sed -e 's/^.*=\(.*\)&.*$/\1/'  #鍵表示
OXYBZQLEOB7KKFAPERMN8EGNOLJWEDYZ
$ shred -uz Steamguard-76561198085918260  #ファイル消去

取得した鍵をKeePassXCに登録してみます.
Steamの設定上で右クリック,「タイムベースワンタイムパスワード」→「TOTP の設定…」から「キー」に設定します.
登録した後Steamの設定上で右クリック,「タイムベースワンタイムパスワード」→「TOTP を表示」でトークンが表示できます.
29467671377 1a01b3ce35

Androidスマートフォンアプリと見比べてみると同じトークンが表示され,Steamにもloginできます :)

43687930524 4260e0f2a6

[

Steam Guard Mobile Authenticatorは同時に1端末しか登録できず,2台目を設定すると1台目の端末の鍵が無効にされます.なのでKeePassXCを利用する場合はroot端末と併用するか,root端末から消してKeePassXCのみで運用するしかなさそうです.

複数の携帯電話で Steam アカウントを認証できますか?
いいえ、ひとつのアカウントで一度に有効化できる認証機器はひとつだけです。

もう一つ問題が.KeePassXCにはcli版が同梱されているのですが,バージョン2.3.4時点ではTOTPのオプションが見当たりません.GUIのみの利用となりそうです.

$ keepassxc-cli -h
Usage: keepassxc-cli [options] command
KeePassXC command line interface.

Available commands:
add            Add a new entry to a database.
clip           Copy an entry's password to the clipboard.
diceware       Generate a new random diceware passphrase.
edit           Edit an entry.
estimate       Estimate the entropy of a password.
extract        Extract and print the content of a database.
generate       Generate a new random password.
locate         Find entries quickly.
ls             List database entries.
merge          Merge two databases.
rm             Remove an entry from the database.
show           Show an entry's information.


Options:
  -h, --help     Displays this help.
  -v, --version  Displays version information.

Arguments:
  command        Name of the command to execute.
$ keepassxc-cli -v
2.3.4
環境
$ dpkg-query -W keepassxc
keepassxc       2.3.4+dfsg.1-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
]]>
https://matoken.org/blog/2018/09/09/try-keepassxc-steam-totp/feed/ 1
Google Chrome からエクスポートしたパスワードリストを KeepassXC にインポート https://matoken.org/blog/2018/09/03/password-list-exported-from-google-chrome-to-keepassxc/ https://matoken.org/blog/2018/09/03/password-list-exported-from-google-chrome-to-keepassxc/#respond Sun, 02 Sep 2018 21:09:02 +0000 http://matoken.org/blog/?p=2088

人に説明するのに手元で試したのですがせっかくなのでblogに

Google Chrome のパスワードマネージャは使っているけれど,汎用的なKeepassXC に移行なメモです.

Google Chrome からパスワードのエクスポート

「設定」→「パスワードとフォーム」→「パスワードを管理」
若しくは chrome://settings/passwords にアクセス.

「︙」を押して「パスワードをエクスポート」から「パスワードをエクスポート…」から適当な場所にパスワードを保存します.

42595980870 d5446a65ee

30536920508 8d62cb50bd

KeepassXC へのインポート

KeepassXC を起動して,「CSVからインポート」を選びます.

43503758335 aa7e31c143

列のレイアウトを以下のようにしてインポートします.

  • Title : 列1

  • Username : 列3

  • Password : 列4

  • URL : 列2

44404975011 57f063d488

ウェブブラウザへの拡張機能の導入

利用するウェブブラウザに拡張機能を導入する.

KeepassXC の「ツール」→「設定」の「ブラウザー統合」で利用するウェブブラウザを有効にする.

42603172110 1770a7e23f

後はよしなに.

環境
$ dpkg-query -W keepassxc google-chrome-stable
google-chrome-stable    68.0.3440.106-1
keepassxc       2.3.1+dfsg.1-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
]]>
https://matoken.org/blog/2018/09/03/password-list-exported-from-google-chrome-to-keepassxc/feed/ 0